#pragma once

#include <nxos/types.h>

#define __DoAbs(x)	((x) < 0 ? -(x) : (x))

extern NX_U32 __UDiv32(NX_U32 dividend, NX_U32 divisor, NX_U32 * remainder);
extern NX_U64 __UDiv64(NX_U64 dividend, NX_U64 divisor, NX_U64 * remainder);

static inline NX_U32 NX_UDiv32(NX_U32 value, NX_U32 divisor)
{
	NX_U32 r;
	return __UDiv32(value, divisor, &r);
}

static inline NX_U32 NX_UMod32(NX_U32 value, NX_U32 divisor)
{
	NX_U32 r;

	__UDiv32(value, divisor, &r);
	return r;
}

